Camera flash for improved color balance

ABSTRACT

A camera unit and method of control are described. The camera unit has a camera flash sub-unit configurable to emit flash light having an adjustable characteristic. A camera sensor sub-unit generates raw color data when exposed to light for processing into a digital image. The camera unit also includes a camera controller for coordinating operation of the camera flash sub-unit and the camera sensor sub-unit. The camera controller monitors one or more ambient light characteristics in a vicinity of the camera unit. Prior to receiving a command instructing the camera unit to generate the digital image, the camera controller repeatedly configures the camera flash sub-unit based on the monitored ambient light characteristics to adjust the characteristics of the emitted flash light. Once the camera controller receives the command, the camera sensor sub-unit is instructed to expose an image sensor using the pre-adjusted camera flash light to increase illumination.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/474,544, filed Apr. 12, 2011, the content of which is herebyincorporated by reference.

FIELD

The described embodiments relate generally to a camera flash module fora digital camera and, more particularly, to a camera flash module havinga quantum dot illuminant to provide controllable color temperature forimproved color balance.

BACKGROUND

Digital photography is a form of photography that uses an image sensorformed out of an array of photosensitive pixels to capture images of ascene. As opposed to film photography, which exposes light sensitivefilm, digital photography renders images using the photosensitive pixelsto convert light photons into accumulated charge. Typically each pixelin the array is photosensitive to a certain range of light correspondingto one of the primary color components used by the image sensor torepresent color. An infrared cutoff filter and one or more color filterlayers are commonly overlaid on the image sensor pixel array to achieveselective pixel photosensitivity.

An image processor linked to the image sensor then typically determinescorresponding intensities of each raw color component (e.g., red, greenand blue) by measuring the amount of accumulated charge in each type ofpixel. In some cases, the raw color components are also de-mosaiced togenerate full color pixel representations. Accordingly, pixels in theresulting digital image are represented by a plurality of colorcomponent values, which may be red, green and blue color components,although other digital color representations exist as well.

A digital camera is typically equipped with a camera flash module orsub-unit. In conditions of low ambient light or scene illumination, thecamera flash module emits a flash of artificially generated light duringimage capture. Together with the available ambient light, the flashlight emitted from the camera flash module increases overall sceneillumination to allow for brighter images.

BRIEF DESCRIPTION OF DRAWINGS

For a better understanding of the described embodiments and to show moreclearly how such embodiments may be carried into effect, reference willnow be made, by way of example, to the accompanying drawings in which:

FIG. 1 is a block diagram of a mobile device having a camera unit in oneexample implementation;

FIG. 2 is a block diagram of an example embodiment of a communicationsubsystem component of the mobile device shown in FIG. 1;

FIG. 3 is a block diagram of a node of a wireless network in one exampleimplementation;

FIG. 4 is a block diagram of an example embodiment of an image sensorsub-unit of the camera unit shown in FIG. 1; and

FIG. 5 is a flowchart showing an example method of controlling thecamera unit shown in FIG. 1 to generate digital images.

DESCRIPTION OF EMBODIMENTS

Images generated by a digital camera under different ambient lightconditions may appear differently or have different image attributes.For example, two images of the same scene generated by a digital cameramay appear differently depending on the color temperature of the ambientlight used to expose the scene. The term “color temperature”, used inthe context of ambient light, may generally refer to the particularspectral composition of the ambient light, such as the relativeintensities of different sub-ranges of visible light. For example, lightmay generally be referred to as being “cool” when the light contains arelatively large blue or violet component. On the other hand, light maybe referred to as “warm” when a relatively large red or orange lightcomponent is present. If color temperature is not taken into account,digital images generated under different ambient light conditions maycontain particular color casts. While the effect may sometimes beintentional, often color casts are undesirable and unsightly.

In general, color balancing is a digital process that involves a globaladjustment of different color component intensities present in thedigital image (typically represented by red, green, and blue primarycolors) in order to render certain specific colors correctly. Whitebalance is a particular type of color balance that aims to properlyrender neutral (e.g., grayscale) colors correctly, and that maygenerally be used to remove color casts appearing in digital picturesthat might otherwise occur due to the color temperature of ambient lightduring image exposure. However, more generalized versions of colorbalance may also be applied to digital images in order to render colorsother than neutral colors correctly or more pleasingly.

A digital camera may have multiple different white balance algorithmsavailable for processing raw image data to generate color balancedimages. In some cases, each different white balance algorithm may beoptimized to remove a different color cast caused by a different colortemperature of ambient light. To select an appropriate white balancingalgorithm, therefore, the color temperature of the ambient light may beestimated and the white balance algorithm most suitable for thattemperature of ambient light may be used. Many digital cameras areequipped to make this determination automatically, although some digitalcameras also may allow a user to manually set the ambient light colortemperature for the purpose of performing white balancing.

Different sources of ambient light may also generally have differentcolor temperatures. For example, natural light may have a differentcolor temperature than incandescent or fluorescent light. Natural lightmay also have a different color temperature on sunny days as compared toovercast conditions. If the image sensor of the digital camera isexposed with ambient light from two or more light sources havinggenerally different color temperatures, different objects in theresulting digital image may acquire different color casts. A whitebalance algorithm optimized for only a single color temperature maytherefore perform sub-optimally over a range of different colortemperatures.

Mixed light conditions are prevalent in flash photography because manyexisting camera flash modules emit artificial light of a fixed colortemperature, which usually does not exactly match the color temperatureof the natural ambient light with which the artificial light mixes. As aresult, mixed or multiple light sources illuminate the scene duringimage exposure, with each light source (i.e., ambient light and flashlight) contributing light of a different color temperature to theoverall scene illumination. Proper color balancing of digital imagesilluminated in part by flash light may therefore be difficult in manycases.

One approach to performing color balancing in digital images illuminatedat least in part by camera flash is to correct for the color temperatureof the flash light, while effectively leaving any color casts due to thenatural ambient light uncorrected. If the level of the natural ambientlight is relatively low in comparison to the flash light (generally afair assumption if the camera flash is being employed to increaseillumination), the intensity of the artificial camera flash light willtend to predominate over the intensity of the natural ambient light.Accordingly, performing white balancing based only on the colortemperature of the artificial camera flash will often suffice.

However, it may not always be the case that the intensity of theartificial camera flash predominates over the intensity of the naturalambient light. If the camera flash module is designed to produce a fixedluminance, the effective intensity of the artificial flash light maythereby depend on the distance between the camera and the image object.Closer objects tend to reflect more of the camera flash light and appearbrighter than objects that are further away from the camera. Therefore,if the image object is far enough away from the camera, the intensity ofthe natural ambient light in the scene may be commensurate with or evengreater than that of the artificial camera flash light. In such cases,performing white balancing based on the color temperature of theartificial camera flash light may produce poor quality images that havestrong and unsightly residual color casts caused by the uncorrectedambient light.

Color temperature may be estimated prior to scene exposure using aseparate light sensor. However, to reduce cost and bulk, many smallerdigital cameras (e.g., handheld or point-and-shoot cameras) will onlycontain a single multi-purpose image sensor. In addition to performingimage capture, pre-image data generated by the image sensor may beprocessed in order to sense one or more characteristics of the ambientlight, such as intensity and color temperature.

While use of a single multi-purpose image sensor may tend to reduce costand bulk, one drawback of this approach is increased processing time anduse of computational resources. For example, estimating the intensity orcolor temperature of the ambient light from pre-image data generated bythe image sensor will generally create a certain processing load, whichis required in addition to any processing load already allocated toperform white balancing or other resident image processing functions ofthe digital camera, such as gamma correction, exposure compensation,enhancement or others. The extra processing functions incur additionaldelay between the time the user depresses the shutter button to initiatepicture taking and the time the resulting digital image can be displayedback to the user, for example, on a view screen or other display of thedigital camera. During this delay (sometimes referred to as “shutterlag”), either the subject of the picture or the user may have movedresulting in the camera not capturing the intended scene image. Asshutter lag may cause the user frustration, minimizing the length of theshutter lags may improve the user's experience and result in higherquality pictures being produced.

In one broad aspect, the described embodiments relate to a method forcontrolling a camera unit having a camera flash sub-unit for emittingflash light to generate a digital image. The method includes monitoringone or more characteristics of ambient light in a vicinity of the cameraunit; receiving a command for instructing the camera unit to generatethe digital image; prior to receiving the command, repeatedlyconfiguring the camera flash sub-unit based on the monitoredcharacteristic of the ambient light to adjust one or morecharacteristics of the flash light emitted by the camera flash sub-unit;and after receiving the command, exposing an image sensor of the cameraunit to generate raw color data for processing into the digital imageusing the adjusted flash light emitted by the camera flash sub-unit toincrease illumination.

In some embodiments, the camera flash sub-unit may be configured basedon the monitored one or more characteristics of the ambient light bymatching the one or more characteristics of the flash light to themonitored one or more characteristics of the ambient light.

In some embodiments, the method further includes: prior to receiving thecommand, selecting an algorithm based on the monitored one or morecharacteristics of the ambient light for performing color balancing; andafter receiving the command, processing the raw color data using theselected color balancing algorithm.

In some embodiments, the one or more characteristics of ambient lightmay be monitored by: prior to receiving the command, repeatedlypre-exposing the image sensor to generate pre-image data; and processingthe pre-image data to determine the monitored one or morecharacteristics of the ambient light.

In some embodiments, the pre-image data may be processed to determinethe monitored characteristic of the ambient light by, for eachpre-exposure of the image sensor: determining one or more new valuesbased on the pre-image data, each new value being representative of oneof the one or more characteristics of the ambient light; and updatingone or more old values with the one or more new values, each old valuebeing representative of the one of the one or more characteristics ofthe ambient light for a previous pre-exposure of the image sensor.

In some embodiments, the one or more characteristics of ambient lightmay be monitored and the camera flash sub-unit may be configured in realtime over a time period occurring prior to receipt of the command.

In some embodiments, the one or more characteristics of ambient lightmay be monitored and the camera flash sub-unit may be configured atdiscrete intervals over a time period occurring prior to receipt of thecommand.

In some embodiments, the discrete intervals may be substantially equallyspaced in time.

In some embodiments, the method further includes displaying one or morevalues on a user interface of the camera unit prior to receiving thecommand, each value being representative of one of the monitored one ormore characteristics of ambient light.

In some embodiments, the method further includes receiving input at theuser interface to adjust the configuration the camera flash sub-unit.

In some embodiments, the monitored one or more characteristics of theambient light include a color temperature of the ambient light and theadjusted one or more characteristics of the flash light include a colortemperature of the flash light.

In another broad aspect, the described embodiments relate to a cameraunit for generating a digital image. The camera unit includes: a cameraflash sub-unit comprising a plurality of emissive light sources arrangedto emit flash light having an adjustable characteristic; a camera sensorsub-unit comprising an image sensor configured to generate raw colordata when exposed for processing into the digital image; and a cameracontroller coupled to the camera flash sub-unit and the camera sensorsub-unit for coordinating operation thereof. The camera controller isconfigured to: monitor one or more characteristics of ambient light in avicinity of the camera unit; receive a command for instructing thecamera unit to generate the digital image; prior to receiving thecommand, repeatedly configure the plurality of emissive sources in thecamera flash sub-unit based on the monitored one or more characteristicsof the ambient light to adjust one or more characteristics of the flashlight emitted by the camera flash sub-unit; and after receiving thecommand, instruct the camera sensor sub-unit to expose the image sensorusing the adjusted flash light emitted by the camera flash sub-unit toincrease illumination.

In some embodiments, the camera controller is configured to control theplurality of emissive sources in the camera flash sub-unit to match theone or more characteristics of the flash light to the monitored one ormore characteristics of the ambient light.

In some embodiments, the camera sensor sub-unit further includes animage sensor processor coupled to the image sensor and configured toprocess the raw color data generated by the image sensor into thedigital image.

In some embodiments, the camera controller is configured to: prior toreceiving the command, instruct the image sensor processor to select analgorithm based on the monitored one or more characteristics of theambient light for performing color balancing; and after receiving thecommand, instruct the image sensor processor to process the raw colordata using the selected color balancing algorithm.

In some embodiments, the camera controller is configured to monitor theone or more characteristics of the ambient light by instructing thecamera sensor sub-unit to: prior to receiving the command, repeatedlypre-expose the image sensor to generate pre-image data; and process thepre-image data using the image sensor processor to determine themonitored one or more characteristics of the ambient light.

In some embodiments, the image sensor processor is configured to processthe pre-image data to determine the monitored one or morecharacteristics of the ambient light by, for each pre-exposure of theimage sensor: determining one or more new values based on the pre-imagedata, each new value being representative of one of the one or morecharacteristics of the ambient light; and updating one or more oldvalues with the one or more new values, each old value beingrepresentative of the one of the one or more characteristics of theambient light for a previous pre-exposure of the image sensor.

In some embodiments, the camera controller is configured to monitor theone or more characteristics of ambient light and to configure theplurality of emissive sources in the camera flash sub-unit in real timeover a time period occurring prior to receipt of the command.

In some embodiments, the camera controller is configured to monitor theone or more characteristics of ambient light and to configure theplurality of emissive sources in the camera flash sub-unit at discreteintervals over a time period occurring prior to receipt of the command.

In some embodiments, the discrete intervals are substantially equallyspaced in time.

In some embodiments, the camera unit further includes a user interfacefor displaying one or more values prior to the camera controllerreceiving the command, each value being representative of one of themonitored one or more characteristics of ambient light.

In some embodiments, the user interface is configured to receive inputto adjust the configuration the camera flash sub-unit.

In some embodiments, the monitored one or more characteristics of theambient light include a color temperature of the ambient light and theadjusted one or more characteristics of the flash light include a colortemperature of the flash light.

In some embodiments, the camera unit is included in a mobilecommunication device.

In another broad aspect, the described embodiments relate to anon-transitory computer-readable storage medium storing instructionsexecutable by one or more processors coupled to the storage medium. Whenexecuted, the stored instructions program the one or more processors tocontrol a camera unit having a camera flash sub-unit for emitting flashlight to generate a digital image. The stored instructions include:monitoring one or more characteristics of ambient light in a vicinity ofthe camera unit; receiving a command for instructing the camera unit togenerate the digital image; prior to receiving the command, repeatedlyconfiguring the camera flash sub-unit based on the monitored one or morecharacteristics of the ambient light to adjust one or morecharacteristics of the flash light emitted by the camera flash sub-unit;and after receiving the command, exposing an image sensor of the cameraunit to generate raw color data for processing into the digital imageusing the adjusted flash light emitted by the camera flash sub-unit toincrease illumination.

To aid the reader in understanding the general structure and operationof the mobile device, reference will be made to FIGS. 1 to 3. However,it should be understood that embodiments of the mobile device are notlimited only to that which is described herein. Examples of differentmobile devices generally include any portable electronic device thatincludes a camera module such as cellular phones, cellular smart-phones,wireless organizers, personal digital assistants, computers, laptops,handheld wireless communication devices, wireless enabled notebookcomputers, wireless Internet appliances, and the like. These mobiledevices are generally portable and thus are battery-powered. However,the described embodiments are not limited only to portable,battery-powered electronic devices. While some of these devices includewireless communication capability, others are standalone devices that donot communicate with other devices.

Referring to FIG. 1, shown therein is a block diagram of a mobile device100 in one example implementation. The mobile device 100 comprises anumber of components, the controlling component being a microprocessor102, which controls the overall operation of the mobile device 100.Communication functions, including data and voice communications, areperformed through a communication subsystem 104. The communicationsubsystem 104 receives messages from and sends messages to a wirelessnetwork 200. In this exemplary implementation of the mobile device 100,the communication subsystem 104 is configured in accordance with theGlobal System for Mobile Communication (GSM) and General Packet RadioServices (GPRS) standards. The GSM/GPRS wireless network is usedworldwide and it is expected that these standards will be supersededeventually by Enhanced Data GSM Environment (EDGE) and Universal MobileTelecommunications Service (UMTS). New standards are still beingdefined, but it is believed that the new standards will havesimilarities to the network behaviour described herein, and it will alsobe understood by persons skilled in the art that the embodimentdescribed herein is intended to use any other suitable standards thatare developed in the future. The wireless link connecting thecommunication subsystem 104 with the wireless network 200 represents oneor more different Radio Frequency (RF) channels, operating according todefined protocols specified for GSM/GPRS communications. With newernetwork protocols, these channels are capable of supporting both circuitswitched voice communications and packet switched data communications.

Although the wireless network 200 associated with the mobile device 100is a GSM/GPRS wireless network in one example implementation, otherwireless networks can also be associated with the mobile device 100 invariant implementations. The different types of wireless networks thatcan be employed include, for example, data-centric wireless networks,voice-centric wireless networks, and dual-mode networks that can supportboth voice and data communications over the same physical base stations.Combined dual-mode networks include, but are not limited to, CodeDivision Multiple Access (CDMA) or CDMA2000 networks, GSM/GPRS networks(as mentioned above), and future third-generation (3G) networks likeEDGE and UMTS. Some other examples of data-centric networks include WiFi802.11, Mobitex™ and DataTAC™ network communication systems. Examples ofother voice-centric data networks include Personal Communication Systems(PCS) networks like GSM and Time Division Multiple Access (TDMA)systems.

The microprocessor 102 also interacts with additional subsystems such asa Random Access Memory (RAM) 106, a flash memory 108, a display 110, anauxiliary input/output (I/O) subsystem 112, a data port 114, a keyboard116, a speaker 118, a microphone 120, short-range communications 122 andother device subsystems 124.

Some of the subsystems of the mobile device 100 performcommunication-related functions, whereas other subsystems can provide“resident” or on-device functions. By way of example, the display 110and the keyboard 116 can be used for both communication-relatedfunctions, such as entering a text message for transmission over thenetwork 200, and device-resident functions such as a calculator or tasklist. Operating system software used by the microprocessor 102 istypically stored in a persistent store such as the flash memory 108,which can alternatively be a read-only memory (ROM) or similar storageelement (not shown). Those skilled in the art will appreciate that theoperating system, specific device applications, or parts thereof, can betemporarily loaded into a volatile store such as the RAM 106.

The mobile device 100 can send and receive communication signals overthe wireless network 200 after required network registration oractivation procedures have been completed. Network access is associatedwith a subscriber or user of the mobile device 100. To identify asubscriber, the mobile device 100 requires a SIM/RUIM card 126 (i.e.Subscriber Identity Module or a Removable User Identity Module) to beinserted into a SIM/RUIM interface 128 in order to communicate with anetwork. The SIM card or RUIM 126 is one type of a conventional “smartcard” that can be used to identify a subscriber of the mobile device 100and to personalize the mobile device 100, among other things. Withoutthe SIM card 126, the mobile device 100 is not fully operational forcommunication with the wireless network 200. By inserting the SIMcard/RUIM 126 into the SIM/RUIM interface 128, a subscriber can accessall subscribed services. Services can include: web browsing andmessaging such as e-mail, voice mail, SMS, and MMS. More advancedservices can include: point of sale, field service and sales forceautomation. The SIM card/RUIM 126 includes a processor and memory forstoring information. Once the SIM card/RUIM 126 is inserted into theSIM/RUIM interface 128, the SIM card/RUIM 126 is coupled to themicroprocessor 102. In order to identify the subscriber, the SIMcard/RUIM 126 contains some user parameters such as an InternationalMobile Subscriber Identity (IMSI). An advantage of using the SIMcard/RUIM 126 is that a subscriber is not necessarily bound by anysingle physical mobile device. The SIM card/RUIM 126 can storeadditional subscriber information for a mobile device as well, includingdatebook (or calendar) information and recent call information.Alternatively, user identification information can also be programmedinto the flash memory 108.

The mobile device 100 is a battery-powered device and includes a batteryinterface 132 and uses one or more rechargeable batteries in a batterymodule 130. The battery interface 132 is coupled to a regulator (notshown), which assists the battery module 130 in providing power V+ tothe mobile device 100. Alternatively, the battery module 130 can be asmart battery as is known in the art. Smart batteries generally includea battery processor, battery memory, switching and protection circuitry,measurement circuitry and a battery module that includes one or morebatteries, which are generally rechargeable. In either case, the one ormore batteries in the battery module 130 can be made from lithium,nickel-cadmium, lithium-ion, or other suitable composite material.

In addition to operating system functions, the microprocessor 102enables execution of software applications 134 on the mobile device 100.The subset of software applications 134 that control basic deviceoperations, including data and voice communication applications, willnormally be installed on the mobile device 100 during manufacturing ofthe mobile device 100.

The software applications 134 include a message application 136 that canbe any suitable software program that allows a user of the mobile device100 to send and receive electronic messages. Various alternatives existfor the message application 136 as is well known to those skilled in theart. Messages that have been sent or received by the user are typicallystored in the flash memory 108 of the mobile device 100 or some othersuitable storage element in the mobile device 100. In an alternativeembodiment, some of the sent and received messages can be storedremotely from the device 100 such as in a data store of an associatedhost system that the mobile device 100 communicates with. For instance,in some cases, only recent messages can be stored within the device 100while the older messages can be stored in a remote location such as thedata store associated with a message server. This can occur when theinternal memory of the device 100 is full or when messages have reacheda certain “age”, i.e. messages older than 3 months can be stored at aremote location. In an alternative implementation, all messages can bestored in a remote location while only recent messages can be stored onthe mobile device 100.

The mobile device 100 further includes a camera module 138, a devicestate module 140, an address book 142, a Personal Information Manager(PIM) 144, and other modules 146. The camera module 138 is used tocontrol camera operations for the mobile device 100. Additionally, thecamera module 138 is used to control a maximum camera current that canbe drawn from the battery module 130 without adversely affecting theoperation of the mobile device 100, such as causing brown-out, reset,affecting the operation of any applications being performed by themobile device 100 and the like.

The device state module 140 provides persistence, i.e. the device statemodule 140 ensures that important device data is stored in persistentmemory, such as the flash memory 108, so that the data is not lost whenthe mobile device 100 is turned off or loses power. The address book 142provides information for a list of contacts for the user. For a givencontact in the address book 142, the information can include the name,phone number, work address and email address of the contact, among otherinformation. The other modules 146 can include a configuration module(not shown) as well as other modules that can be used in conjunctionwith the SIM/RUIM interface 128.

The PIM 144 has functionality for organizing and managing data items ofinterest to a subscriber, such as, but not limited to, e-mail, calendarevents, voice mails, appointments, and task items. A PIM application hasthe ability to send and receive data items via the wireless network 200.PIM data items can be seamlessly integrated, synchronized, and updatedvia the wireless network 200 with the mobile device subscriber'scorresponding data items stored and/or associated with a host computersystem. This functionality creates a mirrored host computer on themobile device 100 with respect to such items. This can be particularlyadvantageous when the host computer system is the mobile devicesubscriber's office computer system.

Additional applications can also be loaded onto the mobile device 100through at least one of the wireless network 200, the auxiliary I/Osubsystem 112, the data port 114, the short-range communicationssubsystem 122, or any other suitable device subsystem 124. Thisflexibility in application installation increases the functionality ofthe mobile device 100 and can provide enhanced on-device functions,communication-related functions, or both. For example, securecommunication applications can enable electronic commerce functions andother such financial transactions to be performed using the mobiledevice 100.

The data port 114 enables a subscriber to set preferences through anexternal device or software application and extends the capabilities ofthe mobile device 100 by providing for information or software downloadsto the mobile device 100 other than through a wireless communicationnetwork. The alternate download path can, for example, be used to loadan encryption key onto the mobile device 100 through a direct and thusreliable and trusted connection to provide secure device communication.

The data port 114 can be any suitable port that enables datacommunication between the mobile device 100 and another computingdevice. The data port 114 can be a serial or a parallel port. In someinstances, the data port 114 can be a USB port that includes data linesfor data transfer and a supply line that can provide a charging currentto charge the mobile device 100.

The short-range communications subsystem 122 provides for communicationbetween the mobile device 100 and different systems or devices, withoutthe use of the wireless network 200. For example, the subsystem 122 caninclude an infrared device and associated circuits and components forshort-range communication. Examples of short-range communication includestandards developed by the Infrared Data Association (IrDA), Bluetooth,and the 802.11 family of standards developed by IEEE.

In use, a received signal such as a text message, an e-mail message, orweb page download will be processed by the communication subsystem 104and input to the microprocessor 102. The microprocessor 102 will thenprocess the received signal for output to the display 110 oralternatively to the auxiliary I/O subsystem 112. A subscriber can alsocompose data items, such as e-mail messages, for example, using thekeyboard 116 in conjunction with the display 110 and possibly theauxiliary I/O subsystem 112. The auxiliary subsystem 112 can includedevices such as a touch screen, mouse, track ball, infrared fingerprintdetector, or a roller wheel with dynamic button pressing capability. Thekeyboard 116 is preferably an alphanumeric keyboard and/ortelephone-type keypad. However, other types of keyboards can also beused. A composed item can be transmitted over the wireless network 200through the communication subsystem 104.

For voice communications, the overall operation of the mobile device 100is substantially similar, except that the received signals are output tothe speaker 118, and signals for transmission are generated by themicrophone 120. Alternative voice or audio I/O subsystems, such as avoice message recording subsystem, can also be implemented on the mobiledevice 100. Although voice or audio signal output is accomplishedprimarily through the speaker 118, the display 110 can also be used toprovide additional information such as the identity of a calling party,duration of a voice call, or other voice call related information.

The mobile device 100 also includes a camera unit 148 that allows a userof the mobile device 100 to take pictures. The camera unit 148 includesa camera controller 150, an optional ambient light sensor sub-unit 152,a camera lens sub-unit 154, a camera flash sub-unit 156, a camera sensorsub-unit 158, a camera user interface (not shown) and a cameraactivation input 160. The camera controller 150 configures the operationof the camera unit 148 in conjunction with information and instructionsreceived from the microprocessor 102. It should be noted that thestructure shown for the camera unit 148 and the description that followsis only one example of an implementation of a camera on a mobile deviceand that the technique of determining maximum flash current should notbe limited to this particular example embodiment.

The camera controller 150 receives activation signals 161 from thecamera activation input 160 indicating commands from the user. Inalternative embodiments, the microprocessor 102 receives the activationsignal 161. A first type of activation signal 161 may be a camerainitiation command, such as an on/off command. A second type ofactivation signal 161 may be a command instructing the camera unit togenerate the digital image, hereafter referred to as a “take picturecommand. Typically, the camera activation input 160 comprises one ormore push-buttons that is depressed by the user. However, the cameraactivation input 160 can also comprise a switch or some otherappropriate input mechanism as is known by those skilled in the art. Inalternative embodiments, the camera activation input 160 is used toinitiate a camera mode on the mobile device 100 by executing the cameramodule 138 in the flash memory 108 such that the mobile device 100 canbe used to take pictures in the camera mode.

Depending on the particular configuration that is employed, the cameralens sub-unit 154 includes a lens along with a shutter and/or aperturealong with components to open and close the shutter and/or aperture toexpose an image sensor in the camera sensor sub-unit 158. The shutterand/or aperture may be opened once upon actuation of the cameraactivation input 160. In some embodiments, the shutter and/or aperturestays open so long as the mobile device 100 is in the camera mode, inwhich case pre-image data is continuously or semi-continuously generatedby the image sensor until a take picture command is received.Alternatively, the shutter and/or aperture may be opened and closed eachtime a picture is taken so that the image sensor is exposed only once inresponse to receipt of the take picture command. Additionally, orinstead of these components, the camera lens sub-unit 154 can includecomponents that provide telescopic functionality to allow the user totake a “zoomed-in” or “zoomed-out” picture.

The camera flash sub-unit 156 includes a camera flash module to generateartificial flash light having an appropriate magnitude or lumen toincrease the quality of the digital images that are obtained by thecamera unit 148. In some cases, the light output of the camera flashsub-unit 156 can be limited by the maximum current draw available fromthe battery module 130 for flash purposes. For example, to avoidexcessive “battery slump”, a maximum camera flash current can beenforced. The camera flash sub-unit 156 is typically based on LED flashtechnology, but in some embodiments can also incorporate phosphormaterials and/or quantum dot layers to adjust the spectral quality ofthe generated flash light. As explained further below, the phosphormaterials and/or quantum dot layers may be used to provide flash lighthaving one or more adjustable characteristics, such as intensity orcolor temperature. The camera flash sub-unit 156 can be operated in acamera flash mode of operation of the camera unit 148, while beingdeactivated in other modes of operation. The camera flash sub-unit 156may be configured and controlled by the camera controller 150 throughflash control signal 268 sent from the camera controller to the cameraflash sub-unit 156.

The camera sensor sub-unit 158 captures and processes raw color datausing an image sensor, which is then processed in an image sensorprocessor to generate a processed digital color image. The image sensorcan be fabricated using, for example, CMOS sensor technology, CCD sensortechnology as well as other sensor technologies. The image sensor canincorporate pixels that are sensitive to light in different parts of thelight spectrum corresponding to primary color components for digitalcolor representation. Based upon the selected camera mode of operation,the image sensor processor receives and processes the raw color datafrom the image sensor to generate the processed digital image.Additional image processing functions can also be performed by the imagesensor processor.

The camera user interface displays information pertaining to variousmodes of operation and configuration of camera sub-units. For example,the camera user interface may display an image representing an exposedor pre-exposed image to the user. Measured characteristics of theambient light may also be displayed to the user using the camera userinterface. Where the camera unit 148 is included on a mobile device 100,the user interface may be the display 110.

Referring now to FIG. 2, a block diagram of the communication subsystemcomponent 104 of FIG. 1 is shown. Communication subsystem 104 comprisesa receiver 180, a transmitter 182, one or more embedded or internalantenna elements 184, 186, Local Oscillators (LOs) 188, and a processingmodule such as a Digital Signal Processor (DSP) 190.

The particular design of the communication subsystem 104 is dependentupon the network 200 in which mobile device 100 is intended to operate,thus it should be understood that the design illustrated in FIG. 2serves only as one example. Signals received by the antenna 184 throughthe network 200 are input to the receiver 180, which may perform suchcommon receiver functions as signal amplification, frequency downconversion, filtering, channel selection, and analog-to-digital (A/D)conversion. A/D conversion of a received signal allows more complexcommunication functions such as demodulation and decoding to beperformed in the DSP 190. In a similar manner, signals to be transmittedare processed, including modulation and encoding, by the DSP 190. TheseDSP-processed signals are input to the transmitter 182 fordigital-to-analog (D/A) conversion, frequency up conversion, filtering,amplification and transmission over the network 200 via the antenna 186.The DSP 190 not only processes communication signals, but also providesfor receiver and transmitter control. For example, the gains applied tocommunication signals in the receiver 180 and the transmitter 182 may beadaptively controlled through automatic gain control algorithmsimplemented in the DSP 190.

The wireless link between the mobile device 100 and a network 200 maycontain one or more different channels, typically different RF channels,and associated protocols used between the mobile device 100 and thenetwork 200. An RF channel is a limited resource that must be conserved,typically due to limits in overall bandwidth and limited battery powerof the mobile device 100.

When the mobile device 100 is fully operational, the transmitter 182 istypically keyed or turned on only when the transmitter 182 is sending tothe network 200 and is otherwise turned off to conserve resources.Similarly, the receiver 180 is periodically turned off to conserve poweruntil the receiver 180 is needed to receive signals or information (ifat all) during designated time periods.

Referring now to FIG. 3, a block diagram of a node of a wireless networkis shown as 202. In practice, the network 200 comprises one or morenodes 202. The mobile device 100 communicates with a node 202 within thewireless network 200. In the exemplary implementation of FIG. 3, thenode 202 is configured in accordance with General Packet Radio Service(GPRS) and Global Systems for Mobile (GSM) technologies. The node 202includes a base station controller (BSC) 204 with an associated towerstation 206, a Packet Control Unit (PCU) 208 added for GPRS support inGSM, a Mobile Switching Center (MSC) 210, a Home Location Register (HLR)212, a Visitor Location Registry (VLR) 214, a Serving GPRS Support Node(SGSN) 216, a Gateway GPRS Support Node (GGSN) 218, and a Dynamic HostConfiguration Protocol (DHCP) 220. This list of components is not meantto be an exhaustive list of the components of every node 202 within aGSM/GPRS network, but rather a list of components that are commonly usedin communications through the network 200.

In a GSM network, the MSC 210 is coupled to the BSC 204 and to alandline network, such as a Public Switched Telephone Network (PSTN) 222to satisfy circuit switched requirements. The connection through the PCU208, the SGSN 216 and the GGSN 218 to the public or private network(Internet) 224 (also referred to herein generally as a shared networkinfrastructure) represents the data path for GPRS capable mobiledevices. In a GSM network extended with GPRS capabilities, the BSC 204also contains a Packet Control Unit (PCU) 208 that connects to the SGSN216 to control segmentation, radio channel allocation and to satisfypacket switched requirements. To track mobile device location andavailability for both circuit switched and packet switched management,the HLR 212 is shared between the MSC 210 and the SGSN 216. Access tothe VLR 214 is controlled by the MSC 210.

The station 206 is a fixed transceiver station. The station 206 and theBSC 204 together form the fixed transceiver equipment. The fixedtransceiver equipment provides wireless network coverage for aparticular coverage area commonly referred to as a “cell”. The fixedtransceiver equipment transmits communication signals to and receivescommunication signals from mobile devices within the cell via thestation 206. The fixed transceiver equipment normally performs suchfunctions as modulation and possibly encoding and/or encryption ofsignals to be transmitted to the mobile device in accordance withparticular, usually predetermined, communication protocols andparameters, under control of a controller. The fixed transceiverequipment similarly demodulates and possibly decodes and decrypts, ifnecessary, any communication signals received from the mobile device 100within the cell. Communication protocols and parameters may vary betweendifferent nodes. For example, one node may employ a different modulationscheme and operate at different frequencies than other nodes.

For all mobile devices 100 registered with a specific network, permanentconfiguration data such as a user profile is stored in the HLR 212. TheHLR 212 also contains location information for each registered mobiledevice and can be queried to determine the current location of a mobiledevice. The MSC 210 is responsible for a group of location areas andstores the data of the mobile devices currently in the location areas inthe VLR 214 for which the MSC 210 is responsible. Further the VLR 214also contains information on mobile devices that are visiting othernetworks. The information in the VLR 214 includes part of the permanentmobile device data transmitted from the HLR 212 to the VLR 214 forfaster access. By moving additional information from a remote HLR 212node to the VLR 214, the amount of traffic between these nodes can bereduced so that voice and data services can be provided with fasterresponse times and at the same time requiring less use of computingresources.

The SGSN 216 and the GGSN 218 are elements added for GPRS support;namely packet switched data support, within GSM. The SGSN 216 and theMSC 210 have similar responsibilities within wireless network 200 bykeeping track of the location of each mobile device 100. The SGSN 216also performs security functions and access control for data traffic onthe network 200. The GGSN 218 provides internetworking connections withexternal packet switched networks and connects to one or more SGSN's 216via an Internet Protocol (IP) backbone network operated within thenetwork 200. During normal operations, a given mobile device 100 mustperform a “GPRS Attach” to acquire an IP address and to access dataservices. This requirement is not present in circuit switched voicechannels as Integrated Services Digital Network (ISDN) addresses areused for routing incoming and outgoing calls. Currently, all GPRScapable networks use private, dynamically assigned IP addresses, thusrequiring a DHCP server 220 connected to the GGSN 218. There are manymechanisms for dynamic IP assignment, including using a combination of aRemote Authentication Dial-In User Service (RADIUS) server and DHCPserver. Once the GPRS Attach is complete, a logical connection isestablished from a mobile device 100, through the PCU 208 and the SGSN216 to an Access Point Node (APN) within the GGSN 218. The APNrepresents a logical end of an IP tunnel that can either access directInternet compatible services or private network connections. The APNalso represents a security mechanism for the network 200, insofar aseach mobile device 100 must be assigned to one or more APNs and themobile devices 100 cannot exchange data without first performing a GPRSAttach to an APN that the mobile device 100 has been authorized to use.The APN may be considered to be similar to an Internet domain name suchas “myconnection.wireless.com”.

Once the GPRS Attach is complete, a tunnel is created and all traffic isexchanged within standard IP packets using any protocol that can besupported in IP packets. This includes tunneling methods such as IP overIP as in the case with some IPSecurity (IPsec) connections used withVirtual Private Networks (VPN). These tunnels are also referred to asPacket Data Protocol (PDP) Contexts and there are a limited number ofthese available in the network 200. To maximize use of the PDP Contexts,the network 200 will run an idle timer for each PDP Context to determineif there is a lack of activity. When a mobile device 100 is not usingthe PDP Context allocated to the mobile device 100, the PDP Context canbe de-allocated and the IP address returned to the IP address poolmanaged by the DHCP server 220.

Referring now generally to FIG. 4, the multi-mode operation of thecamera unit 148 is explained in greater detail. For convenience, thefollowing embodiments of the camera unit 148 are described in thecontext of a camera unit for a mobile communication device, such as themobile device 100 (FIG. 1). However, it should be appreciated that thedescribed embodiments may also suitable for other types andconfigurations of camera modules and are not necessarily limited just tocamera modules incorporated into mobile communication devices. Forexample, the described embodiments may be equally well suited forstand-alone digital camera modules, video camera modules, and the like.

As seen in FIG. 4, in one example implementation, the camera unit 148includes a camera controller 150, an optional ambient light sensorsub-unit 152, a camera lens sub-unit 154, a camera flash sub-unit 156, acamera sensor sub-unit 158, and a camera activation input 160. Whilereference may be made in the following description primarily to thecamera controller 150, the ambient light sensor sub-unit 152, the cameraflash sub-unit 156, and the camera sensor sub-unit 158, furtherdescription of the camera lens sub-unit 154 and the camera activationinput 160 may be found above with reference to FIG. 1.

The camera sensor sub-unit 158 includes both hardware components andsoftware components for capturing and processing digital color images.In an example implementation, the camera sensor sub-unit 158 includes animage sensor 252, variable gain amplifier (VGA) 254, digital to analogconverter (DAC) 256 and image sensor processor (ISP) 257. However, itshould be appreciated that in variant embodiments, some of thecomponents of the camera sensor sub-unit 158 shown in FIG. 4 may bere-allocated to one or more different modules. For example, some of thesoftware and/or processing components of the camera sensor sub-unit 158,such as the image sensor processor 257, may be realized in other camerasub-units. The particular association of components in FIG. 4 is merelyillustrative.

Image sensor 252 is a pixilated, photosensitive array used to capturescene images when exposed to light (either ambient or camera flash),such as by opening a camera shutter (not shown) within the camera lenssub-unit 154. For the duration that the camera shutter is opened, acamera lens (not shown) focuses light through an aperture onto the lightsensor 252. The image sensor 252 captures the exposed image initially asraw sensor pixel data encoded into a sensor output signal 258.

The image sensor 252 may be synthesized on a single image sensor chipthat has a plurality of pixels arranged into a square or rectangulararray. In some embodiments, each pixel in the array includes at leastone crystalline quantum dot layer that is photosensitive to a particularfrequency range of the light spectrum. As will be appreciated, thephotosensitivity of the individual pixels to different wavelengths oflight may depend generally on the bandgap energy of the quantum dotsused to fabricate the pixel. For crystalline quantum dot pixels, thebandgap energy is controllable with good precision based on the latticespacing of the underlying crystalline quantum dot layer. Thus,photosensitivity may be controlled during fabrication as a function oflattice spacing.

A vertical stack of quantum dot layers may be used to fabricate pixelson the image sensor 252 having different spectral sensitivity. Forexample, the stack of quantum dot layers may include a top blue layer, amiddle green layer, and a bottom red layer. Photons of light that areincident on the stack of quantum dot layers will be progressivelyabsorbed into one of the quantum dot layers roughly corresponding to thecolor intensity of the incident light, depending on the specific bandgapenergies of the various quantum dot layers. Thus, higher energy bluelight is absorbed into the blue layer, while lower energy green lightpasses through the blue layer to the underlying green layer wherein thelower energy green light is absorbed. Similarly red light may passthrough both the blue and green layers to the underlying red lightwherein the still lower energy red light is absorbed. With thisconfiguration of the quantum dot layers, the image sensor 252 maycomprise pixels that separately detect each of blue, green, and redlight intensities.

However, in alternative embodiments, image sensor 252 may be realizedinstead using a charge-coupled device (CCD) or complementary metal oxidesemiconductor (CMOS) sensor. Because the light sensitivity of CCD andCMOS sensors may typically not be as controllable as quantum dot lightsensors, color filters may be layered on top of the underlying CCD orCMOS substrate to provide selective spectral photosensitivity todifferent wavelengths of light. In this way, the image sensor 252 againmay generate an sensor output signal 258 consisting of raw sensor pixeldata specific to different regions of the input light spectrum.

Image sensor 252 generates the sensor output signal 258 encoding sensordata by sequentially sensing the electrical charge accumulated in eachsensor pixel after exposure. The sensor output signal 258 is amplifiedby VGA 254 to generate an amplified sensor output signal 260. Digital toanalog converter 256 then digitizes the amplified sensor output signal260 to produce raw digital image data 262. For example, raw digitalimage data 262 may consist of a bitstream of different single componentpixel values, with each single component pixel value sensed from adifferent pixel of the image sensor 252.

The camera flash sub-unit 156 includes a camera flash module (not shown)to generate artifical flash light having an appropriate magnitude orlumen to increase the quality of the digital images that are generatedby the camera unit 148. As described above, the camera flash sub-unit156 may typically be based on LED flash technology, but in someembodiments can also incorporate phosphor materials and/or quantum dotlayers to adjust the spectral quality or composition of the generatedflash light. For example, the camera flash sub-unit 156 may comprise aplurality of LED modules or other emissive light sources arranged inclose proximity. One or more current drivers may also be included in thecamera flash sub-unit 156 for driving the LED modules to generate light.

In some embodiments, the plurality of LED modules may incorporatephosphor materials and/or quantum dot layers, such that each of the LEDmodules emits light in a sub-range of the visible light range. Forexample, one or more LED modules may emit red light, one or more LEDmodules may emit green light, and one or more LED modules may emit bluelight. Alternatively, the LED modules may emit light in other sub-rangesof the visible light range. The number of sub-ranges of the visiblelight range in which the LED modules are configured to emit light isvariable and may generally include 3 or more different sub-ranges of thevisible light range. As explained further below, the particular numberand arrangement of LED modules may be selected to provide a desiredlevel of control over the spectrum of emitted flash light.

In some embodiments, the camera controller 150 is adapted to control theintensity of light emitted by the camera flash sub-unit 156. Forexample, the camera controller 150 may control the level of currentdrawn by the camera flash sub-unit 156 so that the overall intensity oflight emitted by the camera flash sub-unit 156 equals a desired level oflight intensity. As another example, the camera controller 150 maycontrol the overall intensity of emitted light by driving a selectedsubset of the available LED modules with current from the battery 130 togenerate light at the desired intensity level.

The camera controller 150 is also adapted to control the colortemperature of light emitted by the camera flash sub-unit 156. Forexample, the camera controller 150 may control the color temperature ofthe flash light by setting the relative magnitudes of current drawn bythe LED modules in different sub-ranges of visible light, as required,to achieve an effective color temperature of light emitted from thecamera flash sub-unit 156. A look up table or the like may be used bythe camera controller 150 to define a relationship between a given colortemperature of the flash light and the required relative magnitudes ofthe current drawn by the different LED modules.

As another example, the camera controller 150 may control the effectivecolor temperature of the flash light by selectively adjusting the numberof LED modules in each of the sub-ranges of visible light that aredriven with current from the battery 130. In either case, the cameracontroller 150 may realize a particular color temperature for the flashlight by mixing together two or more light components (e.g., red, greenor blue light) in a specified ratio in order to synthesize flash lightof a particular spectrum or composition (and which is reflected in theresulting color temperature of the flash light).

In some embodiments, the optional ambient light sensor sub-unit 152includes ambient light sensor 240, variable gain amplifier (VGA) 242 anddigital to analog converter (DAC) 244. The ambient light sensor 240 isused to estimate one or more characteristics of the ambient light, suchas a color temperature or an intensity level, which is incident on or inthe vicinity of the camera lens sub-unit 154 and that is used to exposethe image sensor 252. Different configurations of the ambient lightsensor 240 are possible. For example, the ambient light sensor 240 maybe implemented using a layer of photovoltaic material, such as seleniumor silicon, which generates a voltage proportional to the ALI.Alternatively, the ambient light sensor 240 may be implemented using aphotoresistive layer, such as cadmium sulfide, which changes electricalresistance proportional to light exposure.

In either case, the observed parameter (voltage or resistance) may bemeasured and correlated to a light intensity value used as an estimateof the detected ambient light intensity (ALI). For this purpose, theambient light sensor 240 generates an ambient light detection signal 246that provides a real-time indication of ALI, such that changing levelsof ALI are communicated by proportionate changes in the level of theambient light detection signal 246.

While the ambient light detection signal 246 may be continuouslygenerated in some embodiments, alternatively, the ambient light sensor240 may be operated periodically or intermittently. For example, theambient light sensor 240 may be configured to output the ambient lightdetection signal 246 only when the camera unit 148 is activated oroperational. Alternatively, the camera controller 150 may control theambient light sensor 240 to output the ambient light detection signal246 in response to or triggered by other events or operations of thecamera module 148.

The VGA 242 is connected to the ambient light sensor 240 and is used toamplify the level of the ambient light detection signal 246, therebygenerating an amplified detection signal 248. The amount of gainprovided by the VGA 242 is variable and may be adjusted corresponding tothe particular implementation of the ambient light sensor 240.

The adjustable gain of the VGA 242 also provides a calibration mechanismfor the ambient light sensor sub-unit 152. For example, the ambientlight sensor 240 may be subjected to one or more known ambient lightintensities under offline test conditions, and the signal gain of theVGA 242 adjusted until the amplified detection signal 248 matchesexpected levels to indicate that the ambient light intensities duringtest conditions are properly detected.

The amplified detection signal 248 is passed into the DAC 244 for signaldigitization, e.g. through sampling and quantization. As will beappreciated, the DAC 244 may have different types or configurationsdepending on the application, such as pulse-width modulation,oversampling, delta-sigma and binary weighted digital to analogconverters. Additionally, the DAC 244 may be realized using hardwarecomponents, software components or some combination of the two. The DAC244 outputs an ambient light data signal 250, which is a digitizedrepresentation of the amplified detection signal 248. Together with thegain factor of the VGA 242, the ambient light data signal 250 isrepresentative of the ALI detected by the ambient light sensor 240 in avicinity of the camera unit 148.

In some example implementations, the camera sensor sub-unit 158 ratherthan the ambient light sensor sub-unit 152 detects the intensity of theambient light that is incident on or in the vicinity of the camera lenssub-unit 154. In such cases, the camera sensor sub-unit 158 detects theintensity by pre-exposing the image sensor 252 to generate pre-imagedata. The ISP 257 then reads the magnitude of one or more colorcomponent values in the pre-image data to estimate the intensity of theambient light. Once processed, the intensity of the ambient lightestimated by the ISP 257 is contained in the image sensor ambient lightdata signal 264. The image sensor ambient light data signal 264 is alsorepresentative of the ALI detected by the image sensor sub-unit 158 in avicinity of the camera unit 148.

The ambient light sensor 240 may also be configured to detect an ambientlight color temperature (ALCT), in which case the ambient light datasignal 250 is also representative of the ALCT. For example, the ambientlight data signal 250 may be a multi-dimensional signal comprising twoseparate signal components, one for each of the intensity and colortemperature of the detected ambient light. Alternatively, the ambientlight sensor sub-unit 152 may generate separate signals to represent theintensity and color temperature of the detected ambient light.Alternatively, the intensity and color temperature of the detectedambient light may be encoded into a single component of the ambientlight data signal 250 using a suitable encoding scheme or suitablecodewords.

In some example implementations, the camera sensor sub-unit 158 detectsthe ALCT instead of the ambient light sensor 240. The camera sensorsub-unit 158 detects the ALCT by processing the pre-image data generatedby pre-exposing the image sensor 252. For example, the ISP 257 may sensethe magnitudes of the different color component values present in thepre-image data in order to estimate the relative intensities ofdifferent components of the ambient light corresponding to differentsub-ranges of the visible light range. After processing, the colortemperature of the ambient light estimated by the ISP 257 is containedin the image sensor ambient light data signal 264. For example, theimage sensor ambient light data signal 264 may be a multi-dimensionalsignal comprising two separate signal components, one for each of theintensity and color temperature of the detected ambient light.Alternatively, the image sensor sub-unit 152 may generate separatesignals to represent ALI and ALCT detected in the vicinity of the cameraunit 148. Alternatively, the ALI and ALCT may be encoded into a singlecomponent of the image sensor ambient light data signal 264 using asuitable encoding scheme or suitable codewords.

During operation, the camera unit 148 may be initiated. As used hereinthroughout “camera initiation” may refer to the camera unit 148 enteringinto a mode of operation after being turned on or, alternatively,switching from a present mode of operation to a new mode of operation.When the camera unit 148 is included on a mobile device 100, camerainitiation may also refer to executing the camera module 138 in theflash memory 108 (FIG. 1).

After the camera unit 148 is initiated, the camera controller 150 isconfigured to wait for receipt of a take picture command, which the usermay input to the camera unit 148 using the camera activation input 160,and which may be used for instructing the camera unit 148 to generate adigital image of the exposed scene. After receiving the take picturecommand, the camera controller 150 controls various sub-units in thecamera unit 148, such as the camera sensor sub-unit 158, to generate adigital image according to a particular mode of operation selected forthe camera unit 148.

In some embodiments, prior to receipt of the take picture command, thecamera controller 150 also controls the various sub-units of the cameraunit 148, as explained further below, to perform different processes andother functions that assist in generating the digital image. Byscheduling various processes and functions of the camera sub-units to beperformed prior to receipt of the take picture command, the cameracontroller 150 is able to reduce the amount of processing time requiredafter receipt of the take picture command and, thereby, reduce shutterlag.

A first mode of operation selected for the camera unit 148 may includean automatic flash configuration mode, in which the camera controller150 repeatedly configures and, if necessary, reconfigures the cameraflash sub-unit 156 prior to receiving the take picture command. In theautomatic flash configuration mode, the camera controller 150 monitorsone or more characteristics of the ambient light in a vicinity of thecamera unit 148. For example, the camera controller 150 may read a valueof the ambient light data signal 250 or image sensor ambient light datasignal 264 for this purpose.

By monitoring the one or more characteristics of the ambient light,including prior to receiving the take picture command, the cameracontroller 150 may consistently have up-to-date information about theone or more monitored characteristics of the ambient light. The cameracontroller 150 may commence monitoring of the ambient light at any timefollowing initiation of the camera unit 148 and may continue monitoringthe ambient light over a time interval up to a point at which the cameracontroller 150 receives the take picture command. In this way, thecamera controller 150 may have reasonably accurate information about theambient light when the take picture command is received.

The one or more characteristics of the ambient light monitored by thecamera controller 150 are generally unlimited, but in some embodimentsmay include one or both of ALI and ALCT. For embodiments of the cameraunit 148 that include the ambient light sensor sub-unit 152, the cameracontroller 150 may monitor the one or more characteristics of theambient light using the ambient light detection signal 246. For example,the camera controller 150 may instruct the ambient light sensor 240 togenerate the ambient light detection signal 246 repeatedly, includingeither periodically at time intervals of equal length or intermittentlyat time intervals of unequal or varying length. The camera controller150 may monitor the one or more characteristics of the ambient lightessentially in real-time by controlling the ambient light sensor 240 togenerate the ambient light detection signal 246 at a sufficiently highrate of repetition.

Alternatively, in some embodiments, the camera controller 150 maymonitor the one or more characteristics of the ambient light at ratesthat are generally less than real-time. For example, the cameracontroller 150 may monitor the one or more characteristics of theambient light at only discrete intervals ranging into the near past.These discrete time intervals may be substantially equally spaced intime, but in some embodiments may also be spaced unequally in time. Aswill be appreciated, performing monitoring at discrete intervalsdecreases the amount of processing time used by the ambient light sensor240 to generate ambient light detection signal 246, thereby alsodecreasing the processing required by the camera controller 150 inmonitoring the one or more ambient light characteristics. A decrease inprocessing may allow for lower power consumption of the battery module130.

For embodiments of the camera unit 148 that omit the ambient lightsensor sub-unit 152, the camera controller 150 may monitor the one ormore characteristics of the ambient light by exerting control over thecamera sensor sub-unit 158. For example, the camera controller 150 mayinstruct camera sensor sub-unit 158 to repeatedly pre-expose the imagesensor 252 to generate the raw digital image data 262 includingpre-image data. The ISP 257 may then process the pre-image data, asdescribed above, in order to determine the one or more characteristicsof the ambient light. As before, the camera controller 150 may provideinstructions either periodically at equal time intervals orintermittently at unequal time intervals depending on how the cameracontroller 150 is monitoring the ambient light. The ISP 257 processesthe pre-image data to determine one or more values that arerepresentative of the one or more characteristics of the ambient lightbeing monitored by the camera controller 150.

During monitoring of the one or more characteristics of the ambientlight, the ISP 257 updates old values generated from previouspre-exposures of the image sensor 252 with new values determined fromthe most recently generated pre-image data. Through this operation, theISP 257 is able to produce updated values representative of thecharacteristics of the ambient light, which may be encoded by the ISP257 in the image sensor ambient light data signal 264 and sent to thecamera controller 150 to be monitored. Alternatively, the ISP 257 mayencode the pre-image data directly in the image sensor ambient lightdata signal 264 for equivalent processing by the camera controller 150to determine the one or more characteristics of the ambient light.

The camera controller 150 may monitor the one or more characteristics ofthe ambient light essentially in real-time by instructing pre-exposureof the image sensor 252 at a sufficiently high rate. However, as above,the camera controller 150 may alternatively instruct pre-exposure of theimage sensor 252 at effectively slower than real time rates.

In the automatic flash configuration mode, prior to receiving the takepicture command, the camera controller 150 repeatedly configures thecamera flash sub-unit 156 based on the monitored one or morecharacteristics of the ambient light. For example, the camera controller150 may adjust one or more characteristics of the artifical flash lightgenerated and emitted by the camera flash sub-unit 156 based on themonitored one or more characteristics of the ambient light. The cameraflash sub-unit 156 may be adjusted so that the flash light emitted bythe camera flash sub-unit 156 during exposure of the image sensor 252mixes with the natural ambient light in a way that is conducive foreffective processing of the raw digital image data 262 by the ISP 257 togenerate digital images.

One characteristic of the flash light emitted by the camera flashsub-unit 156 that may be adjusted by the camera controller 150 is theintensity of the flash light. Where camera flash intensity is adjusted,the camera controller 150 may configure the camera flash sub-unit 156based on the monitored ALI so that the intensity of the emitted flashlight only partially increases illumination. Since the emitted flashlight provides a localized source of generally intense light, fullintensity camera flash during exposure of the image sensor 252 may causeobjects near to and/or facing the camera flash sub-unit 156 to appearintensely or excessively illuminated in the resulting digital image,while also creating the appearance of shadows behind the intenselyilluminated objects. By only partially illuminating the scene image withflash light, the camera controller 150 may reduce or eliminate thesedeleterious effects.

Partial increase of illumination may be instructed by the cameracontroller 150 where the ALI is above a first intensity thresholdrepresenting an ALI below which a full intensity flash light from thecamera flash sub-unit 156 may be used, but is also below a secondintensity threshold representing an ALI above which no camera flash maybe necessary. The camera flash sub-unit 156 is configurable by thecamera controller 150 to adjust the intensity of the emitted flash lightcorresponding to the monitored ALI. For example, the camera flashsub-unit 156 may be repeatedly configured to adjust the intensity of theflash light to substantially match the monitored ALI. By matching, it isto be understood that the intensity of flash light is adjusted to beapproximately the same as the monitored ALI. In the automatic flashconfiguration mode, the camera controller 150 may adjust the intensityof the flash light emitted by the camera flash sub-unit 156, asmentioned above, by varying the level of current drawn by the cameraflash sub-unit 156 or, alternatively, by varying the number of LEDmodules included in the camera flash sub-unit 156 that receive current.

In some cases, the camera controller 150 may adjust the intensity offlash light emitted by the camera flash sub-unit 156 by reducing theflash output to zero. Accordingly, the camera controller 150 maydetermine whether or not the camera flash sub-unit 156 will emit anyflash light at all to increase illumination during exposure of the imagesensor 252. In some cases, where the ALI may be sufficiently high on itsown, use of the camera flash sub-unit 156 to increase scene illuminationmay not be required. For example, where the camera controller 150determines that the ALI is above the second intensity threshold, thecamera controller 150 may encode a flash-off command into a flashcontrol signal 268 sent to the camera flash sub-unit 156 in order todeactivate the camera flash sub-unit 156 during exposure of the imagesensor 252. Alternatively, where the camera controller 150 determinesthat the ALI is below the second intensity threshold, representing anALI where the flash-emitted light may be utilized to increaseillumination, the camera controller 150 encodes a turn flash-on commandin the flash control signal 268 sent to the camera flash sub-unit 156for enabling the camera flash sub-unit 156.

A second characteristic of the artificial flash light emitted by thecamera flash sub-unit 156 that may be adjusted by the camera controller150 is the color temperature of the flash light. It is often difficultto predict the color temperature of light that is generated by themixing of different light components originating from multiple differentsources. Consequently, it will often be difficult for the ISP 257 toselect an appropriate algorithm to perform color balancing whenprocessing the raw digital image data 262 to generate digital images,given that color balancing algorithms are typically optimized forhomogenous light of a single color temperature.

In some embodiments, the camera controller 150 repeatedly configuresand, if necessary, reconfigures the camera flash sub-unit 156 so thatthe flash light generated and emitted by the camera flash sub-unit 156has a color temperature that is determined based on the monitored ALCT.For example, the camera flash sub-unit 156 may be configured so that thecolor temperature of the emitted flash light substantially matches themonitored ALCT. As the monitored ALCT varies, the camera flash sub-unit156 may be reconfigured to generate and emit light having a colortemperature adjusted to match the present ACLT. By matching, it is to beunderstood that the color temperature of the flash light emitted by thecamera flash sub-unit 156 is adjusted to have approximately the samecolor temperature as the monitored ambient light. In the automatic flashconfiguration mode, the camera controller 150 may adjust the colortemperature of the flash light emitted by the camera flash sub-unit 156,as mentioned above, by controlling the relative intensities of differentcolor components present in the flash light.

By substantially matching the color temperature of the flash light tothe monitored ALCT, the camera controller 150 enables the image sensor252 to be exposed with substantially homogenous light of a single colortemperature, even though overall the light is the product of multipledifferent sources (e.g., ambient and camera flash). The ISP 257 may thenalso pre-select a suitable algorithm for performing color balancingbased on the monitored ALCT. Due to the matching of color temperature,the selected white balancing algorithm may be more effective atrendering colors in the resulting digital image than the selected whitebalancing algorithm might otherwise have been had the camera flashsub-unit 156 not been pre-configured to emit flash light having a colortemperature matched to that of the ambient light.

After receiving the take picture command from the activation input 160,the camera controller 150 controls the camera sensor sub-unit 158 toexpose the image sensor 252, which thereby generates the raw digitalimage data 262 including raw color data for processing by the ISP 257into a digital image. When the camera unit 148 is operating in theautomatic flash configuration mode, the camera controller 150 may alsocontrol the camera flash sub-unit 156 to emit a camera flash duringexposure of the image sensor 252, if the camera controller 150determines that the camera flash sub-unit 156 may be operated toincrease illumination. As the camera controller 150 pre-configures thecamera flash sub-unit 156 prior to receipt of the take picture command,further configuration of the camera flash sub-unit 156 by the cameracontroller 150 after receipt of the take picture command may be reducedor eliminated altogether. This conserves computing resources for the ISP257 to process the raw digital image data 262 more efficiently, therebyresulting in reduced shutter lag.

In some embodiments, prior to the camera controller 150 receiving thetake picture command, the ISP 257 may also optionally pre-select a colorbalancing algorithm based on the monitored one or more characteristicsof the ambient light. The selected algorithm may then be applied by theISP 257 to the raw color data during image processing to generatedigital images. As the color balancing algorithm is pre-selected by theISP 257 prior to receipt of the take picture command, computingresources available after receipt of the take picture command are againconserved. As explained further below, the ISP 257 may avoid having totest different candidate white balancing algorithms to determine whichalgorithm performs superior to others for given ambient lightconditions.

The ISP 257 may select one white balancing algorithm to use from adatabase 266 of white balancing algorithms. In some embodiments,different white balancing algorithms in the database 266 are optimizedfor different ambient light conditions and the ISP 257 may select theparticular algorithm to use based on the monitored one or morecharacteristics of the ambient light. For example, the ISP 257 mayselect the algorithm to perform white balancing that most closelycorresponds to the monitored ALCT. Because the camera controller 250monitors the ambient light prior to receipt of the take picture command,the ISP 257 may select the white balancing algorithm to use based onup-to-date information regarding the ambient light. Since the ISP 257 isalso able to pre-select the white balancing algorithm prior to receivingthe take picture command, available computing resources after receivingthe take picture command again may be conserved, which may reduce theamount of processing performed by the camera controller 150 or ISP 257and reduce shutter lag.

In some embodiments, the monitored characteristics of ambient light maybe displayed graphically on a user interface of the camera unit 148. Forexample, where the camera unit 148 is included on the mobile device 100,the display unit 112 (FIG. 1) may be used for this purpose. For example,a graphic such as a light bulb, a sun, a cloud, house with shadow, orany other object indicative of the ambient light conditions may bedisplayed. Alternatively, one or more values representative of themonitored characteristics may be displayed. As will be appreciated,color temperature is commonly represented in units of Kelvin, e.g. 3000Kor 9000K. Ambient light intensity may also be displayed numerically onthe display unit 112 as an equivalent exposure value (EV), whichtypically ranges from about −2 to 2. Graphical information pertaining towhether the camera flash sub-unit 156 will be operated during sceneexposure may also be displayed on the user interface of the camera unit148.

Displaying the monitored characteristics of the ambient light, orrepresentative values thereof, on the display unit 112 allows the userto know how the camera flash sub-unit 156 will operate during imagecapture. A user of the camera unit 148 may be able to preview, from theone or more characteristics, how the resulting digital image capturedwith those settings will appear. For example, a user may be able todecide when to initiate image capture using the camera activation input160 based on the presently detected ambient light conditions.Additionally, the user may also be able to determine from theinformation displayed in the user interface if a particularconfiguration of the camera flash sub-unit 156 would not be suitable forthe user's purpose. In such cases, the user may then manually adjust theconfiguration of the camera flash sub-unit 156.

In some embodiments, the camera unit 148 may be adapted to allow theuser to transmit a lock configuration command to the camera controller150 through the activation input 160. For example, the lockconfiguration command may be sent when the user depresses an additionalpush-button of the activation input 160. Alternatively, the cameracontroller 150 may receive the lock configuration command as input atthe user interface. When a lock configuration command is received at thecamera controller 150, the camera controller 150 maintains the presentconfiguration of the camera flash sub-unit 156 at current settings.

After the camera flash sub-unit 156 has been locked, the cameracontroller 150 may cease updating the configuration of the camera flashsub-unit 156 based on newly detected ambient light conditions, althoughthe camera controller 150 may continue to monitor the ambient lightconditions in some cases. The lock configuration command may be employedby the user to lock-in a desirable configuration of the flash sub-unit156 for increasing illumination. For example, based on the informationdisplayed graphically or numerically on the user interface, the user caninput a lock configuration command when a desirable configuration of theflash sub-unit 156 is indicated. Accordingly, the lock configurationcommand may be employed by the user to override any camera flashsettings automatically calculated by the camera controller 150.

A second mode of operation for the camera unit 148 may be a manual mode,in which the user manually sets one or more values or controlsrepresentative of the monitored characteristics of the ambient light.The user may manually set the one or more values or controls byinteracting with one or more buttons or switches on the cameraactivation input 160, or other input mechanism known by those skilled inthe art. The camera controller 150 may control values or controls thatthe user does not set automatically, as described herein. For example,the user may manually set the camera flash sub-unit 156 to operateduring image capture, while leaving the camera controller 150 toautomatically adjust the characteristics (e.g., intensity and/or colortemperature) of the emitted flash light. As another example, the usermay manually set the intensity of the emitted flash light according tohow far away the scene object is located from the camera unit 148, whileleaving the camera controller 150 to automatically adjust the colortemperature of the emitted flash light.

While the camera unit 148 is activated, the user may switch the cameraunit 148 between different modes of operation. For example, the user mayswitch the camera unit 148 between the automatic flash configuration andmanual modes as desired. While the camera unit 148 is operated in theautomatic flash configuration mode, the user may also employ the lockconfiguration command to switch the camera flash sub-unit 156 betweenthe locked state in which the present configuration is maintained andthe unlocked state in which the camera controller 150 automaticallyupdates the configuration of the camera flash sub-unit 156. The cameraunit 148 is thereby enabled for multi-mode operation based on userinput.

Referring now to FIG. 5, therein is illustrated a method 300 forcontrolling a camera unit to generate digital images. The method 300 maybe performed by one or more components of the camera unit 148 shown inFIG. 4, such as the camera controller 150, image sensor processor 257,and camera activation input 160. Accordingly, the following descriptionof method 300 may be abbreviated for clarity. Further details of themethod 300 are provided above with reference to FIG. 4.

At 310, one or more characteristics of the ambient light in the vicinityof the camera unit 148 are determined. For example, an intensity orcolor temperature of the ambient light may be determined. Moreover, aseparate ambient light sensor (e.g., 240 in FIG. 4) or pre-exposure ofan image sensor (e.g., 252 in FIG. 4) may be used for this purpose. Aswill be explained further below, the one or more characteristics of theambient light may be determined repeatedly or intermittently over aperiod of time by performing 310 one or more times. At each instance,new values representing the ambient light characteristics may replaceold values, in effect, resulting in a continuous or pseudo-continuousmonitoring of ambient light conditions.

At 320, a camera flash sub-unit (e.g., 156 in FIG. 4) is configuredbased on the monitored one or more characteristics of the ambient lightto adjust one or more characteristics of the artifical flash lightemitted by the camera flash. In some embodiments, one or morecharacteristics of the camera flash light may be adjusted to matchcorresponding characteristics of the ambient light. For example, anintensity or color temperature of the camera flash light may be adjustedto match that of the ambient light.

At 330, an algorithm for performing color balancing is optionallypre-selected based on the monitored one or more characteristics of theambient light.

At 340, it is determined whether a command (e.g., a take picturecommand) for instructing the camera unit to generate a digital image hasbeen received. If the take picture command has been received, the method300 proceeds to 350. However, if the take picture command has not beenreceived, the method 300 returns to 310. Accordingly, method 300 mayrepeatedly cycle through 310, 320 and, optionally, 330 prior to anduntil a take picture command is received. This cycling results in theambient light characteristics being monitored, as well as the cameraflash being repeatedly configured and, if necessary, reconfigured basedon the monitored characteristics of the ambient light.

At 350, it is determined whether or not to operate the camera flashduring image exposure in order to increase illumination. If it isdetermined that camera flash is to be used, the method 300 proceeds to360 where the camera flash is activated to emit artificially generatedflash light during image capture. However, if it determined that noflash light is to be emitted, the method 300 proceeds to 370 where animage sensor (e.g. 252 in FIG. 4) is exposed. Depending on the outcomeof the determination in 350, exposure of the image sensor may beassisted by additional illumination provided by the camera flash.Exposure of the image sensor generates raw color data for processinginto a digital image.

At 380, the raw color data is optionally processed using the colorbalancing algorithm pre-selected at 330. Otherwise the raw color datamay be processed using other resident image processing functions of thecamera, such as exposure compensation, gamma correction, and edgeenhancement.

While FIG. 5 presents an example implementation of the method 300, itshould be understood that modifications to the number and order of actsexplicitly illustrated may be possible. For example, determination ofwhether the take picture command has been received may be performed atother times and not just between 330 and 350, as shown. In someembodiments, receipt of the take picture command is detectedconcurrently with any or all of 310, 320 and 330. Additionally, thedetermination in 350 of whether or not the camera flash will be usedmay, in some cases, be performed also prior to receipt of the takepicture command.

Some example embodiments have been described herein with reference tothe drawings and in terms of certain specific details to provide athorough comprehension of the described embodiments. However, it will beunderstood that the embodiments described herein may be practiced insome cases without one or more of the described aspects. For example,functions performed by the camera controller 150 may be performedinstead on other components of the camera unit 148, such as ISP 257, ormicrocontroller 102. In some places, description of well-known methods,procedures and components has been omitted for convenience and toenhance clarity. It should also be understood that various modificationsto the embodiments described and illustrated herein might be possible.The scope of the embodiments is thereby defined only by the appendedlisting of claims.

The invention claimed is:
 1. A method for controlling a camera unit togenerate a digital image, the camera unit comprising a cameracontroller, a camera sensor sub-unit, a camera activation input, and acamera flash sub-unit configured to emit flash light, the methodcomprising: in response to receiving, at the camera controller of thecamera unit, a first activation signal from the camera activation input,the first activation signal indicative of initiation of the camera unit:pre-exposing an image sensor of the camera sensor sub-unit to generatepre-image data; processing, at an image sensor processor of the camerasensor sub-unit, the pre-image data to determine an intensity of theambient light that is incident on or in a vicinity of the camera unitand to determine a color temperature of the ambient light that isincident on or in the vicinity of the camera unit; configuring thecamera flash sub-unit, using the camera controller, based on theintensity level of the ambient light that is determined to adjust anintensity level of the flash light and based on the color temperature ofthe ambient light that is determined to adjust a color temperature ofthe flash light; and determining, at the camera controller, whether asecond activation signal has been received from the camera activationinput, the second activation signal indicative of a command forinstructing the camera unit to generate the digital image; absentdetermining, at the camera controller, that the second activation signalhas been received from the camera activation input, repeatingpre-exposing, processing, and configuring; and, in response todetermining, at the camera controller, that the second activation signalhas been received from the camera activation input: controlling thecamera-flash sub-unit to cease pre-exposing, processing, and configuringthe camera-flash sub-unit; determining whether to operate thecamera-flash unit to emit the flash light to increase illumination;controlling the camera-flash sub-unit to emit the flash light having theadjusted the intensity level and the adjusted color temperature inresponse to determining to operate the camera-flash unit during imageexposure to increase illumination; and, exposing an image sensor of thecamera sensor sub-unit to generate raw color data for processing intothe digital image.
 2. The method of claim 1, wherein processing, at theimage sensor processor of the camera sensor sub-unit, the pre-image datato determine a color temperature of the ambient light that is incidenton or in a vicinity of the camera unit comprises: selecting, at theprocessor of the image sensor, an algorithm based on the colourtemperature of the ambient light that is determined for performing colorbalancing; and wherein the method further comprises, after exposing,processing, at the processor of the image sensor, the raw color datausing the selected color balancing algorithm.
 3. The method of claim 1,wherein for each pre-exposure of the image sensor, processing furthercomprises: determining one or more new values based on the pre-imagedata, each new value being representative of the intensity level of theambient light; and updating one or more old values with the one or morenew values, each old value being representative of the intensity levelof the ambient light for a previous pre-exposure of the image sensor. 4.The method of claim 1, wherein repeating pre-exposing-occurs in realtime over a time period occurring prior to receipt of the secondactivation signal, and wherein repeating configuring comprisesconfiguring the camera flash-sub unit in real time over the time periodoccurring prior to receipt of the command.
 5. The method of claim 1,wherein repeating pre-exposing occurs at discrete intervals over a timeperiod occurring prior to receipt of the second activation signal andwherein repeating configuring comprises configuring the camera flash-subat each discrete interval over the time period.
 6. The method of claim5, wherein the discrete intervals are substantially equally spaced intime.
 7. The method of claim 1, further comprising displaying one ormore values on a user interface of the camera unit prior to receivingthe second activation signal at the camera controller, each value beingrepresentative of the intensity level of ambient light that is detected.8. The method of claim 7, further comprising receiving input at the userinterface to adjust the configuration of the camera flash sub-unit.
 9. Acamera unit for generating a digital image, the camera unit comprising:a camera activation input; a camera flash sub-unit comprising aplurality of emissive light sources arranged to emit flash light havingan adjustable characteristic; a camera sensor sub-unit comprising animage sensor configured to generate raw color data when exposed and animage sensor processor coupled to the image sensor and configured toprocess the raw color data generated by the image sensor into thedigital image; and a camera controller coupled to the camera activationinput, the camera flash sub-unit and the camera sensor sub-unit forcoordinating operation thereof, the camera controller configured to: inresponse to receiving a first activation signal from the cameraactivation input, the first activation signal indicative of initiationof the camera unit: instruct the camera-sensor sub-unit to perform thesteps of: pre-exposing the image sensor to generate pre-image data; andprocessing, using the image sensor processor, the pre-image data todetermine the intensity level of the ambient light and to determine acolor temperature of the ambient light that is incident on or in avicinity of the camera unit; configuring the plurality of emissivesources in the camera flash sub-unit based on the intensity level of theambient light that is determined to adjust the intensity level of theflash light and based on the color temperature of the ambient light thatis determined to adjust a color temperature of the flash light; anddetermining whether a second activation signal has been received fromthe camera activation input, the second activation signal indicative ofcommand for instructing the camera unit to generate the digital image;absent determining that the second activation signal has been receivedfrom the camera activation input, repeating pre-exposing, processing,and configuring; in response to determining that the second activationsignal has been received from the camera activation input: ceasingpre-exposing, processing, and configuring; determining whether tooperate the camera-flash sub-unit to increase illumination; instructingthe camera-flash sub-unit to emit the flash light having the adjustedintensity level and the adjusted color temperature in response todetermining to operate the camera-flash unit to increase illumination;and, instructing the camera sensor sub-unit to expose the image sensorto generate raw color data for processing into the digital image. 10.The camera unit of claim 9, wherein processing using the image sensorprocessor, the pre-image data to determine, a color temperature of theambient light that is incident on or in a vicinity of the camera unitcomprises: instructing the image sensor processor to select an algorithmbased on the color temperature of the ambient light for performing colorbalancing; and wherein the camera controller is further configured to,after exposing, instruct the image sensor processor to process the rawcolor data using the selected color balancing algorithm.
 11. The cameraunit of claim 9, wherein for each pre-exposure of the image sensor,processing further comprises: determining one or more new values basedon the pre-image data, each new value being representative of theintensity level of the ambient light; and updating one or more oldvalues with the one or more new values, each old value beingrepresentative of the intensity level of the ambient light for aprevious pre-exposure of the image sensor.
 12. The camera unit of claim9, wherein repeating pre-exposing and processing occurs in real timeover a time period occurring prior to receipt of the second activationsignal to obtain values for the intensity level of the ambient light,and wherein repeating configuring comprises configuring the plurality ofemissive sources in the camera flash sub-unit in real time over the timeperiod occurring prior to receipt of the second activation signal. 13.The camera unit of claim 9, wherein repeating pre-exposing andprocessing occurs at discrete time intervals over a time periodoccurring prior to receipt of the second activation signal to obtainvalues for the intensity level of the ambient light, and whereinrepeating configuring occurs at the discrete intervals over the timeperiod occurring prior to receipt of the second activation signal. 14.The camera unit of claim 13, wherein the discrete intervals aresubstantially equally spaced in time.
 15. The camera unit of claim 9,further comprising a user interface for displaying one or more valuesprior to the camera controller receiving the second activation signal,each value being representative of the intensity of ambient light thatis incident on or in a vicinity of the camera unit.
 16. The camera unitof claim 15, wherein the user interface is configured to receive inputto adjust the configuration of the camera flash sub-unit.
 17. The cameraunit of claim 9, wherein the camera unit is included in a mobilecommunication device.
 18. A non-transitory computer-readable storagemedium storing instructions executable by one or more processors coupledto the storage medium, the stored instructions for programming the oneor more processors when executed to control a camera unit to generate adigital image, the camera unit comprising a camera flash sub-unit foremitting flash light, a camera activation input, a camera controller,and the stored instructions comprising: in response to receiving, at thecamera controller of the camera unit, a first activation signal from thecamera activation input, the first activation signal indicative ofinitiation of the camera unit: pre-exposing an image sensor of thecamera sensor sub-unit to generate pre-image data; processing, at animage sensor processor of the camera sensor sub-unit, the pre-image datato determine an intensity of the ambient light that is incident on or ina vicinity of the camera unit and to determine a color temperature ofthe ambient light that is incident on or in a vicinity of the cameraunit; configuring the camera flash sub-unit, using the cameracontroller, based on the intensity level of the ambient light that isdetermined to adjust an intensity level of the flash light and based onthe color temperature of the ambient light that is determined to adjusta color temperature of the flash light; determining, at the cameracontroller, whether second activation signal has been received from thecamera activation input, the second activation signal indicative of acommand for instructing the camera unit to generate the digital image;absent determining, at the camera controller, that the second activationsignal has been received from the camera activation input, repeatingpre-exposing, processing, and configuring; and, in response todetermining, at the camera controller, that the second activation signalhas been received from the camera activation input: controlling thecamera-flash sub-unit to cease pre-exposing, processing, and configuringdetermining whether to operate the camera-flash unit to emit the flashlight to increase illumination: controlling the camera-flash sub-unit toemit the flash light having the adjusted intensity level and theadjusted color temperature in response to determining to operate thecamera-flash unit during image exposure to increase illumination; and,exposing an image sensor of the camera unit to generate raw color datafor processing into the digital image.
 19. The method of claim 1,wherein configuring the camera flash sub-unit, using the cameracontroller, based on the color temperature of the ambient light that isdetermined, to adjust a color temperature of the flash light furthercomprises matching the color temperature of the flash light to the colortemperature of the ambient light that is determined.
 20. The camera unitof claim 9, wherein configuring the plurality of emissive sources in thecamera flash sub-unit based on the color temperature of the ambientlight that is determined to adjust a color temperature of the flashlight further comprises matching the color temperature of the flashlight to the color temperature of the ambient light that is determined.